﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Extensions;
using ConfExpert.Utility;
using DevExpress.XtraEditors;

namespace Tailord
{
    public partial class ManualTopBol : XPopupForm
    {
        public decimal Ihtiyac { get; set; }
        public decimal TopMt { get; set; }
        public string Barkod { get; set; }

        public ManualTopBol()
        {
            InitializeComponent();
        }

        private void TopBol_Load(object sender, EventArgs e)
        {
            MainToolbar.Visible = true;
            EnableBarcodeType(0);

            DataTable dtSirket = AppSession.DataManager.ExecuteDataTableByQuery("select * from Sirket");
            gleSirket.Properties.Assign(GetCustomGLE(dtSirket, "SirketAdi", "SirketId"));

            BarcodeRead += ManualTopBol_BarcodeRead; 
        }


        void ManualTopBol_BarcodeRead(int Type, int Barcode)
        {
            Barkod = Barcode.ToStringNN();

            DataTable dtTop = AppSession.DataManager.ExecuteDataTable("GetTopByBarkod", Barkod);
            if (dtTop.Rows.Count > 0)
            {
                int TopKumasId = dtTop.Rows[0]["KumasId"].ToIntZero();
                string KumasKodu = dtTop.Rows[0]["KumasKodu"].ToStringNN();
                TopMt = dtTop.Rows[0]["Metraj"].ToDecimalNN();
                Ihtiyac = dtTop.Rows[0]["Ihtiyac"].ToDecimalNN();

                lblKumasKodu.Text = KumasKodu;
                lblIhtiyac.Text = Ihtiyac.ToString();
                lblBarkod.Text = Barkod;
                lblTopmt.Text = TopMt.ToString();

            }
            else
            {
                XtraMessageBox.Show("Kumaş topu bulunamadı");
                return;
            }
        }
                
        

        private void btnOk_Click(object sender, EventArgs e)
        {            
            decimal KesilecekMetraj = txtQty.Value;
            int SirketId =gleSirket.EditValue.ToIntZero();

            if (Barkod.ToStringNN()=="")
            {
                XtraMessageBox.Show("Kumaşın barkodunu okutun");
                return;
            }

            if (KesilecekMetraj==0)
            {
                XtraMessageBox.Show("Lütfen keseceğiniz miktarı girin");
                return;
            }

            if (KesilecekMetraj>TopMt)
            {
                XtraMessageBox.Show("Girdiğiniz metraj topun metrajından büyük olamaz !");
                return;
            }

            if (KesilecekMetraj > TopMt - Ihtiyac)
            {
                XtraMessageBox.Show("Girdiğiniz metrajdan kalan kısım, diğer talepleri karşılamıyor. Lütfen !");
                return;
            }

            if (SirketId == 0)
            {
                XtraMessageBox.Show("Firma boş olamaz !");
                return;
            }

            if (txtTalepEden.Text.ToStringNN()=="")
            {
                XtraMessageBox.Show("Talep eden boş olamaz !");
                return;
            }

            ExecQuery("TopBol", Barkod, KesilecekMetraj, 0, "", SirketId, txtTalepEden.Text, AppSession.UserInfo.UserId, txtNotlar.Text);
            XtraMessageBox.Show("Top bölündü");
            this.DialogResult = DialogResult.OK;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
        }
    }
}
